package com.dp.server.entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.envers.Audited;

import com.dp.client.dto.AlmacenDTO;
import com.dp.client.dto.CiudadDTO;
import com.dp.server.MantenimientoGenerico;

@Entity

public class Almacen {
	private int id;
	private	int capacidadMaxima;
	private double latitud;
	private double longitud;
	private String descripcion;
	private int ciudadId;
	private boolean eliminado;
	public boolean isEliminado() {
		return eliminado;
	}
	public void setEliminado(boolean eliminado) {
		this.eliminado = eliminado;
	}
	public int getCiudadId() {
		return ciudadId;
	}
	public void setCiudadId(int ciudadId) {
		this.ciudadId = ciudadId;
	}
	@Id
	@GeneratedValue(generator="increment")
	@GenericGenerator(name="increment", strategy = "increment")
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getCapacidadMaxima() {
		return capacidadMaxima;
	}
	public void setCapacidadMaxima(int capacidadMaxima) {
		this.capacidadMaxima = capacidadMaxima;
	}
	public double getLatitud() {
		return latitud;
	}
	public void setLatitud(double latitud) {
		this.latitud = latitud;
	}
	public double getLongitud() {
		return longitud;
	}
	public void setLongitud(double longitud) {
		this.longitud = longitud;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public AlmacenDTO extractDTO(){
		AlmacenDTO almacen = new AlmacenDTO();
		almacen.setId( id );
		almacen.setCapacidadMaxima(capacidadMaxima);
		//MantenimientoGenerico<Ciudad> mantenimiento = new MantenimientoGenerico<>("Ciudad");
		//almacen.setCiudad( mantenimiento.buscarID( ciudadId ).extractDTO() );
		almacen.setDescripcion(descripcion);
		almacen.setLatitud(latitud);
		almacen.setLongitud(longitud);
		return almacen;
	}
	public Almacen(){ }
	
	public Almacen( AlmacenDTO almacen){
		this.id=almacen.getId();
		this.descripcion=almacen.getDescripcion();
		this.latitud=almacen.getLatitud();
		this.longitud=almacen.getLongitud();
		this.capacidadMaxima=almacen.getCapacidadMaxima();
		this.ciudadId=almacen.getCiudad().getId();
		this.eliminado=false;
	}
}
